<?php
/**
 * computadoras
 *
 * computadoras.php
 * @author Hector Ruiz
 * @version 1.0
 * @copyright Hector Ruiz, 13 October, 2011
 * @package default
 **/

class Computadoras extends CI_Controller {

    public function __construct() {
        parent::__construct();

        $this->load->model("menu_model");
        $this->load->model("equipos_model");

        //Only logged in users are alowed to access this controller
        if($this->session->userdata('logged_in') == FALSE) redirect('login');
    }

    function index() {
        $data = $this->menu_model->general("Inventario de Computadoras");
        $data['site_name'] = "Inventario Individual";
        //Hector recuerda que los procesos siempre regresan al proceso anterior... aqui seria lo siguiente
        $data['app_menu'] = $this->menu_model->return_link_menu('inventario_individual/options');
        $data['content_html'] = $this->computadoras_dashboard();
        $js = '
        
                $(document).ready( function () {
                $("#example").dataTable( {
                    "aaSorting":[[1, "asc"]],
                    "bJQueryUI": true,
                    "sPaginationType": "full_numbers",
                    "sDom": \'<"H"Tfr>t<"F"ip>\',
                    "oTableTools": {
                    "sSwfPath": "'.$this->config->item('swf_path').'copy_cvs_xls_pdf.swf",
                    "aButtons": [
                        {
                            "sExtends": "copy",
                            "mColumns": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
                        },
                        {
                            "sExtends": "csv",
                            "mColumns": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
                        },
                        {
                            "sExtends": "xls",
                            "mColumns": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
                        },
                        {
                            "sExtends": "pdf",
                            "mColumns": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
                        }
                    ]
                    }
                } );
            } );
            
            ';
        $data['js'] = $js;
        
        $this->load->view('template', $data);
    }


    function computadoras_dashboard(){
        $images_path = $this->config->item('images_path');
        $order = array('marca', 'modelo');
        $html = "";
        $html.= "<table id='example' width='100%' class='ui-widget-header'>";
        $html.= "<thead>";
        $html.= "<tr>";
        $html.= "<th>FECHA DE REGISTRO</th>";
        $html.= "<th>TIPO</th>";
        $html.= "<th>MARCA</th>";
        $html.= "<th>MODELO</th>";
        $html.= "<th>NUMERO DE SERIE</th>";
        $html.= "<th>NOMBRE DEL EQUIPO</th>";
        $html.= "<th>MEMORIA</th>";
        $html.= "<th>DISCO DURO</th>";
        $html.= "<th>TIPO DE PROCESADOR</th>";
        $html.= "<th>VELOCIDAD DE PROCESADOR (GHz)</th>";
        $html.= "<th>TIPO DE LECTOR</th>";
        $html.= "<th>DIRECCION MAC</th>";
        $html.= "<th>DIRECCION IP</th>";
        //$html.= "<th>STATUS DEL ARTICULO</th>";
        $html.= "<tH colspan=2 size='6%'>".anchor('computadoras/computadoras_add','<img src="'.$images_path.'New.png" border="0" width="22" height="22" />' )."</th>";
        $html.= "</thead>";
        $html.= "<tbody class='ui-widget-container'>";
        $values = $this->equipos_model->get_list('computadoras','',$order);
        if(!empty($values)) {
            foreach($values as $k=>$v) {
                $id = $values[$k]['numero_serie'];
                $html.= "<tr>";
                $html.= "<td align='center'>".$values[$k]['fecha_registro']."</td>";
                //Aqui segun el tipo actualizamos las descripcion - el tipo es numerico en la base de datos y no hay tabla de referencia...
                switch($values[$k]['tipo']) {
                case 1:
                    $tipo_desc = "Escritorio";
                case 2:
                    $tipo_desc = "NetBook";
                    break;
                case 3:
                    $tipo_desc = "Laptop";
                    break;
                default:
                    $tipo_desc = "Escritorio";
                }
                $html.= "<td align='center'>".$tipo_desc."</td>";
                $evals = $this->equipos_model->read('catalogo_computadoras', 'id', $values[$k]['marca']);
                $html.= "<td align='center'>".$evals[0]['marca']."</td>";
                $html.= "<td align='center'>".$values[$k]['modelo']."</td>";
                $html.= "<td align='center'>".$values[$k]['numero_serie']."</td>";
                $html.= "<td align='center'>".$values[$k]['nombre_equipo']."</td>";
                $evals = $this->equipos_model->read('catalogo_memorias', 'id', $values[$k]['memoria']);
                $html.= "<td align='center'>".$evals[0]['memoria']."</td>";
                $evals = $this->equipos_model->read('catalogo_discos_duros', 'id', $values[$k]['disco_duro']);
                $html.= "<td align='center'>".$evals[0]['disco_duro']."</td>";
                $evals = $this->equipos_model->read('catalogo_procesadores', 'id', $values[$k]['tipo_procesador']);
                $html.= "<td align='center'>".$evals[0]['procesador']."</td>";
                $html.= "<td align='center'>".$values[$k]['velocidad_procesador']."</td>";
                $evals = $this->equipos_model->read('catalogo_lectores', 'id', $values[$k]['tipo_lector']);
                $html.= "<td align='center'>".$evals[0]['lector']."</td>";
                $html.= "<td align='center'>".$values[$k]['direccion_mac']."</td>";
                $html.= "<td align='center'>".$values[$k]['direccion_ip']."</td>";
                $html.= "<td align='center'>".anchor('computadoras/computadoras_add/'.$id,'<img src="'.$images_path.'edit.gif" border="0" width="22" height="22" />')."</td>";
                $html.= "<td align='center'>".anchor('computadoras/computadoras_delete/'.$id,'<img src="'.$images_path.'editdelete.gif" border="0" width="22" height="22" />')."</td>";
                $html.= "</tr>";
            }
        }
        $html.= "</tr>";
        $html.= "</tbody>";
        $html.= "</table>";

        return $html;
    }

    function computadoras_add($id="") {
        $data = $this->menu_model->general("Agregar Computadora"); 
        //Hector aqui el return link que va entre parentesis es el nombre de un controlador/funcion etc...
        $data['app_menu'] = $this->menu_model->return_link_menu('computadoras');
        //Esto es para formatear la fecha.... veras como funciona cuando lo veas en la forma
        $js_date = 'onKeyDown="javascript:return dFilter (event.keyCode, this, \'####-##-##\');"';
        $js_mac = 'onKeyDown="javascript:return dFilter (event.keyCode, this, \'##-##-##-##-##-##\');"';
        $form_path = "computadoras/computadoras_add/".$id;
        $path = "computadoras/index/";
        $table = "computadoras";
        $where = array('disponibilidad' => '1');
        $id_name = "numero_serie";

        $fields = $this->equipos_model->fields($table);
        $rules = $this->equipos_model->rules($table, $fields);

        if($this->form_validation->run() == FALSE) {
            $new = 1;
            $values = array();
            foreach($fields as $k=>$v) {
                $values[0][$k] = "";
            }

            $exists = $this->equipos_model->exists($table, $id_name, $id);
            if(!empty($exists)) {
                $new = 0;
                $values = $this->equipos_model->read($table, $id_name, $id);
            }

            $form = "<div>";
            $form .= "Los Campos en <span class='required'>Rojo</span> Son Requeridos!";
            $form .= "</div>";

            $form .= "<div>";
            $form .= validation_errors();
            $form .= "</div>";

            //arreglo para guardar las marcas
            $marcas_v = $this->equipos_model->get_list('catalogo_computadoras', $where, "marca");
            if(!empty($marcas_v)) {
                foreach($marcas_v as $k=>$v) {
                    $marcas_id = $marcas_v[$k]['id']; 
                    $marcas_nombres = $marcas_v[$k]['marca'];
                    $marcas_options[$marcas_id] = $marcas_nombres;
                }
            }

            //arreglo para guardar las capacidades de RAM
            $memorias_v = $this->equipos_model->get_list('catalogo_memorias', "", "id");
            if(!empty($memorias_v)) {
                foreach($memorias_v as $k=>$v) {
                    $memorias_id = $memorias_v[$k]['id']; 
                    $memorias_capacidad = $memorias_v[$k]['memoria'];
                    $memorias_options[$memorias_id] = $memorias_capacidad;
                }
            }

            //arreglo para guardar las capacidades de Disco Duro
            $discos_v = $this->equipos_model->get_list('catalogo_discos_duros', "", "id");
            if(!empty($discos_v)) {
                foreach($discos_v as $k=>$v) {
                    $discos_id = $discos_v[$k]['id']; 
                    $discos_capacidad = $discos_v[$k]['disco_duro'];
                    $discos_options[$discos_id] = $discos_capacidad;
                }
            }

            //arreglo para guardar los tipos de Procesadores
            $procesadores_v = $this->equipos_model->get_list('catalogo_procesadores', "", "procesador");
            if(!empty($procesadores_v)) {
                foreach($procesadores_v as $k=>$v) {
                    $procesadores_id = $procesadores_v[$k]['id']; 
                    $procesadores_capacidad = $procesadores_v[$k]['procesador'];
                    $procesadores_options[$procesadores_id] = $procesadores_capacidad;
                }
            }

            //arreglo para guardar los tipos de Lectores
            $lectores_v = $this->equipos_model->get_list('catalogo_lectores', "", "lector");
            if(!empty($lectores_v)) {
                foreach($lectores_v as $k=>$v) {
                    $lectores_id = $lectores_v[$k]['id']; 
                    $lectores_tipo = $lectores_v[$k]['lector'];
                    $lectores_options[$lectores_id] = $lectores_tipo;
                }
            }


            //Creacion de un nuevo CPU
            $form .= form_open($form_path);
            $form .= form_hidden($id_name, $id);

            //Hector - cuando tengas una fecha yo ya tengo configurado el jquery solo agrega la clase datepicker
            //Fijate en el form_input aqui solo le agregue "class" => "datepicker"
            $form .= form_label($fields["fecha_registro"],"Fecha de Registro");
            $form .= "<br/>";
            $form .= form_input(array('name' => 'fecha_registro', 'id' => 'fecha_registro', 'size' => 10, 'class' => 'datepicker'), set_value('fecha_registro', $values[0]['fecha_registro']), $js_date);
            $form .= "<br><br/>";

            //Asi se manejan los radio buttons... 1=Escritorio, 2=NetBook, 3=Laptop.  La base de datos debe de ser integer en este campo
            $form .= form_label($fields["tipo"],"Tipo");
            $form .= "<br>";
            ($values[0]["tipo"] == 1) ? $checked = TRUE : $checked = FALSE;
            $form .= form_radio(array("name" => "tipo", "id" => "tipo", "value" => 1), set_value("tipo", $values[0]["tipo"]), set_radio("tipo", 1, $checked)).nbs(1)."Escritorio".nbs(2);
            ($values[0]["tipo"] == 2) ? $checked = TRUE : $checked = FALSE;
            $form .= form_radio(array("name" => "tipo", "id" => "tipo", "value" => 2), set_value("tipo", $values[0]["tipo"]), set_radio("tipo", 2, $checked)).nbs(1)."NetBook".nbs(2);
            ($values[0]["tipo"] == 3) ? $checked = TRUE : $checked = FALSE;
            $form .= form_radio(array("name" => "tipo", "id" => "tipo", "value" => 3), set_value("tipo", $values[0]["tipo"]), set_radio("tipo", 3, $checked)).nbs(1)."Laptop".nbs(2);
            $form .= "<br><br>";

            $form .= form_label($fields["marca"],"Marca");
            $form .= "<br/>";
            $form .= form_dropdown("marca", $marcas_options, set_value("marca", $values[0]["marca"]),'id="marca"');
            $form .= "<br></br>";

            $form .= form_label($fields["modelo"],"Modelo");
            $form .= "<br/>";
            $form .= form_input(array("name" => "modelo", "id" => "modelo", "size" => 15), set_value("modelo",$values[0]["modelo"]));
            $form .= "<br><br/>";

            $form .= form_label($fields["numero_serie"],"Numero de Serie");
            $form .= "<br/>";
            $form .= form_input(array("name" => "numero_serie", "id" => "numero_serie", "size" => 30), set_value("numero_serie",$values[0]["numero_serie"]));
            $form .= "<br><br/>";

            $form .= form_label($fields["nombre_equipo"],"Nombre del Equipo (Hostname)");
            $form .= "<br/>";
            $form .= form_input(array("name" => "nombre_equipo", "id" => "nombre_equipo", "size" => 15), set_value("nombre_equipo",$values[0]["nombre_equipo"]));
            $form .= "<br><br/>";

            $form .= form_label($fields["memoria"],"Memoria");
            $form .= "<br/>";
            $form .= form_dropdown("memoria", $memorias_options, set_value("memoria", $values[0]["memoria"]),'id="memoria"');
            $form .= "<br></br>";

            $form .= form_label($fields["disco_duro"],"Disco Duro(GB)");
            $form .= "<br/>";
            $form .= form_dropdown("disco_duro", $discos_options, set_value("disco_duro", $values[0]["disco_duro"]),'id="disco_duro"');
            $form .= "<br></br>";

            $form .= form_label($fields["tipo_procesador"],"Tipo de Procesador");
            $form .= "<br/>";
            $form .= form_dropdown("tipo_procesador", $procesadores_options, set_value("tipo_procesador", $values[0]["tipo_procesador"]),'id="tipo_procesador"');
            $form .= "<br></br>";

            $form .= form_label($fields["velocidad_procesador"],"Velocidad de Procesador");
            $form .= "<br/>";
            $form .= form_input(array("name" => "velocidad_procesador", "id" => "velocidad_procesador", "size" => 5), set_value("velocidad_procesador",$values[0]["velocidad_procesador"]));
            $form .= "<br><br/>";

            $form .= form_label($fields["tipo_lector"],"Tipo de Lector");
            $form .= "<br/>";
            $form .= form_dropdown("tipo_lector", $lectores_options, set_value("tipo_lector", $values[0]["tipo_lector"]),'id="tipo_lector"');
            $form .= "<br></br>";

            $form .= form_label($fields["direccion_mac"],"Direccion MAC");
            $form .= "<br/>";
            $form .= form_input(array('name' => 'direccion_mac', 'id' => 'direccion_mac', 'size' => 20), set_value('direccion_mac', $values[0]['direccion_mac']), $js_mac);
            $form .= "<br><br/>";

            $form .= form_label($fields["direccion_ip"],"Direccion IP");
            $form .= "<br/>";
            $form .= form_input(array("name" => "direccion_ip", "id" => "direccion_ip", "size" => 20), set_value("direccion_ip",$values[0]["direccion_ip"]));
            $form .= "<br><br/>";

            $form .= form_submit('submit', 'Submit') . nbs(2) . form_reset('reset', 'Reset');

            $form .= form_close();

            $data['content_html'] = $form;
            $this->load->view('template', $data);
        } else {
            $id = $this->input->post($id_name);
            $data = array();
            foreach($fields as $k=>$v) {
                $value = $this->input->post($k);
                $data[$k] = $value;
            }
            $this->equipos_model->save($table, $id_name, $id, $data);
            redirect($path);
        }

    }

    function computadoras_delete($id="") {
        if($id != "") {
            $table = "computadoras";
            $id_name = "numero_serie";
            $result = $this->equipos_model->delete($table, $id_name, $id);
        }
        redirect('computadoras/index');
    }
}        

/* end of file */
